package com.hfb.mashibing.alip8.designpattern._021TemplateMethod;

/**
 * 模板方法：
 *  模板类里的具体方法调用了抽象方法
 */
public class MainV1 {
    public static void main(String[] args) {
        F f = new C1();
        f.m();
    }

}

/**
 * 模板类：
 */
abstract class F {


    /**
     *  模板方法
     */
    void m(){
        opt1();
        opt2();
    }

    abstract void opt1();
    abstract void opt2();
}

class C1 extends F {

    @Override
    void opt1() {
        System.out.println("Opt1");
    }

    @Override
    void opt2() {
        System.out.println("Opt2");
    }
}
